1. Field of the Invention
The present invention relates to networks, and, more particularly, to a pipelined network.
2. Description of the Related Art
Computer networks are an increasingly important part of both private and business environments. Computing devices such as workstations, personal computers, server computers, storage devices, firewalls and other computing devices function as nodes of a network with at least one network element connecting the computing devices. The various nodes transmit and/or receive various kinds of information over the network. The network may be a bus based, ring based, a switched network or a combination. Computing devices and users are demanding higher communication speeds across networks as more and more information flows across the various networks. The introduction of new technologies will likely load down networks even more.
There are numerous network architectures used to interconnect the various nodes. One common and familiar architecture is a local area network (LAN), which is generally a network within a single building or company campus. The rules by which nodes transmit and receive packet data are defined in various protocols. One common protocol utilized by LANs is defined in IEEE 802.3, also referred to as the Ethernet. Other protocols commonly utilized are ring-based protocols such as IEEE 802.5, referred to as a “token ring” protocol, which requires a special bit pattern, or “token” to circulate when nodes are idle, and which nodes remove before transmitting data packets.
A network protocol provides rules to route a packet of information from a source to a destination in a packet switching network. A packet is generally a portion of a message transmitted over a network that typically includes routing or destination information in addition to data information. Packets may vary in size from only a few bytes to many thousands of bytes.
The network protocol acts to control congestion when a resource conflict arises. Resource conflicts arise when network resources are simultaneously requested. The Ethernet (IEEE 802.3), for example, uses a bus-based broadcasting mechanism that allows nodes to transmit at any time. That can result in collisions on the bus. If, in Ethernet based networks, two or more packets collide, the nodes wait a random amount of time before re-transmitting. The sending node typically buffers packets until they are acknowledged because the packets might have to be retransmitted. Receiving nodes may also buffer packets.
The type of networks typically used for LANs however, cannot adequately support systems requiring low forwarding latencies and high communication bandwidth, such as distributed processing systems, in which storage resources as well as processing tasks may be shared.
In switched networks, similar considerations apply. In a switched network delays occur in the switches when congestion causes packets to be temporarily stored in buffer memories. Congestion arises when a path, internal or external to the switch, is requested to forward more packets than its capacity allows. Usually, it cannot be predicted how long congestion lasts. Thus, forwarding delays are variable and unpredictable. That complicates network design, in particular, it complicates the bookkeeping of outstanding packets and the scheduling of the network switches. Bookkeeping is complex since the number of outstanding packets can vary and since it can be difficult to decide whether a packet was lost or just delayed for a long time. Scheduling the switches is complicated since the routes of the packets cannot be known before the packets actually arrive making it necessary to calculate the routes “on the fly”.
Another factor to be considered in trying to achieve an efficient network is that data transfers across most networks typically have wide variation in bandwidth and latency requirements. Latency and bandwidth define the speed and capacity of a network. Latency is generally the amount of time it takes for a packet to travel from its source to its destination. Bandwidth is the amount of traffic a network can carry in a fixed time, typically expressed in bytes per second. There can be conflicts between a desire for high bandwidth and low latency. For example, in a high speed data network that generally carries large sized data packets (e.g., 2K bytes), a small packet (e.g., 64 bytes) having low-latency requirements, can wait a long time for a large packet currently being transferred to complete. High-bandwidth network traffic with larger-sized packets can conflict with low-latency traffic with smaller-sized packets. Larger-sized packets increase the latency of smaller-sized packets, and smaller-sized packets can interfere with scheduling for larger-sized packets. The smaller-sized packets can prevent larger packets from fully utilizing available bandwidth.
It would be desirable to reduce complexity of network design by avoiding forwarding delays that are variable and unpredictable, avoid complicated bookkeeping related to outstanding packets and scheduling. It would also be desirable to accomplish reduced complexity and still provide higher throughput.